Type GFX_ParticleSystem

	Field systemType:Int
	Field particles:GFX_Particle[]
	
	Method Update:Int () Abstract
	Method SetParticleDefaults (p:GFX_Particle) Abstract
	Method PreRender() Abstract
	Method RenderParticle (p:GFX_Particle, tween:Float = 1) Abstract
	Method PostRender() Abstract

	Method Render (tween:Float = 1)
		If particles Then
			PreRender()
			For Local i:Int = 0 To particles.length - 1
				If particles[i].energy > 0 Then
					RenderParticle(particles[i], tween)
				End If
			Next
			PostRender()
		End If
	End Method
	
	Method SetSystemType (value:Int)
		systemType = value
	End Method

	Method GetSystemType:Int ()
		Return systemType
	End Method

End Type
